<template><div><h2 id="目录结构" tabindex="-1"><a class="header-anchor" href="#目录结构"><span>目录结构</span></a></h2>
<p>Yii 中文文档 /</p>
<h2 id="目录结构-1" tabindex="-1"><a class="header-anchor" href="#目录结构-1"><span>目录结构</span></a></h2>
<p>安装 Yii 后，就有了一个可运行的 Yii 应用，根据配置的不同，可以通过 <code v-pre>http://hostname/basic/web/index.php</code> 或 <code v-pre>http://hostname/index.php</code> 访问。 本章节将介绍应用的内建功能，如何组织代码，以及一般情况下应用如何处理请求。</p>
<blockquote>
<p>Info: 为简单起见，在整个“入门”板块都假定你已经把 <code v-pre>basic/web</code> 设为 Web 服务器根目录并配置完毕， 你访问应用的地址会是 <code v-pre>http://hostname/index.php</code> 或类似的。 请按需调整 URL。</p>
</blockquote>
<p>注意项目模板和框架完全不同，安装完之后全都归你了。你可以根据你的需要自由的添加或删除代码和 修改全部的。</p>
<h2 id="基础应用模板目录结构" tabindex="-1"><a class="header-anchor" href="#基础应用模板目录结构"><span>基础应用模板目录结构</span></a></h2>
<p>应用中最重要的目录和文件（假设应用根目录是 <code v-pre>basic</code>）：</p>
<div class="language-php line-numbers-mode" data-highlighter="prismjs" data-ext="php" data-title="php"><pre v-pre class="language-php"><code><span class="line">basic<span class="token operator">/</span>                  应用根目录</span>
<span class="line">    assets<span class="token operator">/</span>             前端资源包配置</span>
<span class="line">    commands<span class="token operator">/</span>           控制台命令类</span>
<span class="line">    config<span class="token operator">/</span>             应用配置及其它配置</span>
<span class="line">        console<span class="token operator">.</span>php     控制台应用配置信息</span>
<span class="line">        web<span class="token operator">.</span>php         Web 应用配置信息</span>
<span class="line">    controllers<span class="token operator">/</span>        控制器类</span>
<span class="line">    mail<span class="token operator">/</span>               电子邮件模板</span>
<span class="line">    models<span class="token operator">/</span>             模型类</span>
<span class="line">    runtime<span class="token operator">/</span>            Yii 在运行时生成的文件，例如日志和缓存文件</span>
<span class="line">    tests<span class="token operator">/</span>              测试相关</span>
<span class="line">    vagrant<span class="token operator">/</span>            虚拟机相关配置</span>
<span class="line">    vendor<span class="token operator">/</span>             已经安装的 Composer 包，包括 Yii 框架自身</span>
<span class="line">    views<span class="token operator">/</span>              视图文件</span>
<span class="line">    web<span class="token operator">/</span>                Web 应用根目录，包含 Web 入口文件</span>
<span class="line">        assets<span class="token operator">/</span>         Yii 发布的资源文件（javascript 和 css）</span>
<span class="line">        index<span class="token operator">.</span>php       应用入口文件</span>
<span class="line">    widgets<span class="token operator">/</span>            前端小部件</span>
<span class="line">    <span class="token operator">.</span>gitignore          git 版本系统忽略的目录列表</span>
<span class="line">    composer<span class="token operator">.</span>json       Composer 配置文件<span class="token punctuation">,</span> 描述包信息</span>
<span class="line">    requirements<span class="token operator">.</span>php    安装使用 Yii 需求检查器脚本</span>
<span class="line">    yii                 Yii 控制台命令执行脚本</span>
<span class="line">    yii<span class="token operator">.</span>bat             Yii 控制台命令执行脚本（Windows）</span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>一般来说，应用中的文件可被分为两类：在 <code v-pre>basic/web</code> 下的和在其它目录下的。 前者可以直接通过 HTTP 访问（例如浏览器），后者不能也不应该被直接访问。</p>
<p>Yii 实现了 <a href="http://wikipedia.org/wiki/Model-view-controller" target="_blank" rel="noopener noreferrer">模型-视图-控制器（MVC）</a>设计模式，这点在上述目录结构中也得以体现。 <code v-pre>models</code> 目录包含了所有 <a href="https://learnku.com/docs/yii-framework/2.0.x/models/12003" target="_blank" rel="noopener noreferrer">模型类</a>， <code v-pre>views</code> 目录包含了所有 <a href="https://learnku.com/docs/yii-framework/2.0.x/views/12005" target="_blank" rel="noopener noreferrer">视图脚本</a>， <code v-pre>controllers</code> 目录包含了所有 <a href="https://learnku.com/docs/yii-framework/2.0.x/controller/12002" target="_blank" rel="noopener noreferrer">控制器类</a>。</p>
<p>以下图表展示了一个应用的静态结构：</p>
<p><img src="https://cdn.learnku.com/uploads/images/202201/29/93088/oI8mIkXDFx.png!large" alt="应用静态结构"></p>
<p>每个应用都有一个入口脚本 <code v-pre>web/index.php</code>，这是整个应用中唯一可以访问的 PHP 脚本。 入口脚本接受一个 Web 请求并创建 <a href="https://learnku.com/docs/yii-framework/2.0.x/application-subject/12000" target="_blank" rel="noopener noreferrer">应用</a> 实例去处理它。 应用在它的 <a href="https://learnku.com/docs/yii-framework/2.0.x/application-component/12001" target="_blank" rel="noopener noreferrer">组件</a> 辅助下解析请求，并分派请求至 MVC 元素。视图使用 <a href="https://learnku.com/docs/yii-framework/2.0.x/widgets/12020" target="_blank" rel="noopener noreferrer">小部件</a> 去创建复杂和动态的用户界面。</p>
<blockquote>
<p>💖喜欢本文档的，欢迎点赞、收藏、留言或转发，谢谢支持！<br>
作者邮箱：zhuzixian520@126.com，github地址：<a href="https://github.com/zhuzixian520" target="_blank" rel="noopener noreferrer">github.com/zhuzixian520</a></p>
</blockquote>
</div></template>


